// pages/orders/orders.js
Page({
  data: {
    orders: []
  },
  onLoad() {
    this.getOrderList();
  },
  getOrderList(innerCode) {
    wx.request({
      url: 'http://localhost:9008/order-service/manage/order/list', // 请求地址
      method: 'GET',
      data: {
        currentPage: 1,
        pageSize: 100
      },
      success: res => {
        console.log('请求结果:', res);
        if (res.statusCode === 200) {
          let orders = res.data.data.map(order => {
            // 假设createTime是ISO格式的时间字符串
            const createTime = new Date(order.createTime);
            const currentTime = new Date();
            const diffInMinutes = (currentTime - createTime) / (1000 * 60);
            // 如果订单状态为"待支付"且超过15分钟，则更新状态
            if (order.status === '待支付' && diffInMinutes > 15) {
              order.status = '未支付'; // 或者其他你想设置的状态
              delete order.remainingTime; // 移除剩余时间属性，因为它不再适用
            }

            // 格式化订单金额
            order.amount = this.formatAmount(order.amount);

            return order;
          });

          // 按 createTime 降序排序
          orders.sort((a, b) => new Date(b.createTime) - new Date(a.createTime));

          this.setData({
            orders: orders // 更新data中的orders数据
          });
        } else {
          wx.showToast({
            title: '加载失败，请重试',
            icon: 'none'
          });
        }
      },
      fail: () => {
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      }
    })
  },

  handlePayment(e) {
    const orderNumber = e.currentTarget.dataset.orderNumber;
    console.log(`支付按钮被点击，订单号: ${orderNumber}`);

    // 假设我们只需要传递订单号，实际应用中可能还需要传递更多数据
    wx.navigateTo({
      url: `/pages/indexs/pay/payment/payment?orderNumber=${encodeURIComponent(orderNumber)}`,
    });
  },

  // 辅助函数：将以分为单位的金额转换为以元为单位，并保留两位小数
  formatAmount(amountInCents) {
    if (typeof amountInCents !== 'number') {
      throw new Error('amountInCents should be a number');
    }
    return (amountInCents / 100).toFixed(2);
  }
});